package com.nageoffer.shortlink.admin.toolkit;

import java.security.SecureRandom;

/**
 * 分组名分组id随机生成器
 */
public final class RandomCodeUtil {

    // 字符池：0-9, a-z, A-Z
    private static final String CHAR_POOL = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    // 使用 SecureRandom 代替 Random，提高安全性和随机性
    private static final SecureRandom RANDOM = new SecureRandom();

    /**
     * 生成指定长度的随机字符串（包含数字和大小写字母）【分组id】
     * @param length 随机字符串长度【生成多少位】
     * @return 随机字符串
     */
    public static String generateRandomCode(int length) {
        StringBuilder sb = new StringBuilder(length);
        for (int i = 0; i < length; i++) {
            int index = RANDOM.nextInt(CHAR_POOL.length());
            sb.append(CHAR_POOL.charAt(index));
        }
        return sb.toString();
    }

    /**
     * 生成默认6位的随机字符串
     * @return 6位随机字符串
     */
    public static String generateRandomCode() {
        return generateRandomCode(6);
    }

}
